<?php
/**
 * 安装向导
 */
header('Content-type:text/html;charset=utf-8');
error_reporting( 0);
// 检测是否安装过
if (file_exists('./install.lock')) {
    echo '你已经安装过该系统，重新安装需要先删除 install.lock 文件,如无需重新安装，请删除 install 目录。';
    die;
}
// 同意协议页面
if(@!isset($_GET['c']) || @$_GET['c']=='agreement'){
    require './agreement.html';
}
// 检测环境页面
if(@$_GET['c']=='test'){
    require './test.html';
}
// 创建数据库页面
if(@$_GET['c']=='create'){
    require './create.html';
}
// 安装成功页面
if(@$_GET['c']=='success'){
    // 判断是否为post
    if($_SERVER['REQUEST_METHOD']=='POST'){
        $data = $_POST;
        // 连接数据库
        $link = @new mysqli("{$data['hostname']}:{$data['hostport']}",$data['username'],$data['password']);
        // 获取错误信息
        $error = $link->connect_error;
        if (!is_null($error)) {
            // 转义防止和alert中的引号冲突
            $error = addslashes($error);
            die("<script>alert('数据库连接失败: $error');history.go(-1)</script>");
        }
        // 设置字符集
        $link->query("SET NAMES 'utf8'");
        $link->server_info>5.0 or die("<script>alert('请将您的mysql升级到5.0以上');history.go(-1)</script>");
        // 创建数据库并选中
        if(!$link->select_db($data['database'])){
            $create_sql='CREATE DATABASE IF NOT EXISTS '.$data['database'].' DEFAULT CHARACTER SET utf8;';
            $link->query($create_sql) or die('创建数据库失败');
            $link->select_db($data['database']);
        }
        // 导入sql数据并创建表
        $sql_str = file_get_contents('../public/edu.sql');
        $sql_array = preg_split("/;[\r\n]+/", str_replace('tp5_',$data['prefix'], $sql_str));
        foreach ($sql_array as $k => $v) {
            if (!empty($v)) {
                $link->query($v);
            }
        }

        //---------------------- 写入配置信息 ------------------------ start
        if (is_array($data)) {
            //读取配置内容
            $conf = file_get_contents('./data/database.tpl');
            //替换配置项
            foreach ($data as $name => $value) {
                $conf = str_replace("[{$name}]", $value, $conf);
            }
            //写入应用配置文件
            if (file_put_contents('../application/database.php', $conf)) {
                //return true;
            } else {
                exit('配置文件写入失败！');  //return '配置文件写入失败！';
            }
        }else {
            exit('数据有误，稍后重试');
        }
        //--------------------- 写入配置信息 ------------------ end

        $link->close();

        @touch('./install.lock');
        require './success.html';
    }
}
